অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) একটি জনপ্রিয় লাইব্রেরি যা HTTP রিকোয়েস্ট এবং রেসপন্স পরিচালনা করার জন্য ব্যবহৃত হয়। এই ক্লায়েন্টে অ্যাসিঙ্ক্রোনাস অপারেশন পরিচালনা করা সম্ভব, যার মাধ্যমে রিকোয়েস্ট পাঠানোর পর সিস্টেম ব্লক হয় না এবং সেসময় অন্য কাজ করা যায়। Future
এবং Callback
দুটি গুরুত্বপূর্ণ ধারণা যা অ্যাসিঙ্ক্রোনাস প্রক্রিয়ার সাথে সম্পর্কিত।
Future
ক্লাসটি Java-তে অ্যাসিঙ্ক্রোনাস অপারেশন ব্যবস্থাপনার জন্য ব্যবহৃত হয়। এটি একটি ডামি রিপ্লাই যা আসন্ন রেসপন্সটি ধারণ করে, যাতে আপনি পরে এটি পেতে পারেন।
CloseableHttpAsyncClient httpClient = HttpAsyncClients.createDefault();
httpClient.start();
HttpGet request = new HttpGet("http://example.com");
Future<HttpResponse> future = httpClient.execute(request, null);
// রেসপন্স পাওয়ার জন্য অপেক্ষা করা
HttpResponse response = future.get();
System.out.println(response.getStatusLine());
এখানে future.get()
মেথডটি রেসপন্স পাওয়ার জন্য অপেক্ষা করে, এবং যখন রেসপন্স আসে, তখন এটি প্রদান করে।
Callback
এক ধরনের কলব্যাক ইন্টারফেস, যা অ্যাসিঙ্ক্রোনাস অপারেশন সম্পন্ন হওয়ার পরে কল করা হয়। এর মাধ্যমে আপনি রিকোয়েস্টের পরবর্তী কাজগুলোর জন্য কোন নির্দিষ্ট কার্যক্রম নির্ধারণ করতে পারেন।
CloseableHttpAsyncClient httpClient = HttpAsyncClients.createDefault();
httpClient.start();
HttpGet request = new HttpGet("http://example.com");
httpClient.execute(request, new FutureCallback<HttpResponse>() {
@Override
public void completed(HttpResponse result) {
System.out.println("Request completed successfully: " + result.getStatusLine());
}
@Override
public void failed(Exception ex) {
System.out.println("Request failed: " + ex.getMessage());
}
@Override
public void cancelled() {
System.out.println("Request was cancelled");
}
});
এখানে FutureCallback
ইন্টারফেসটি ব্যবহৃত হয়েছে, যেখানে completed()
, failed()
, এবং cancelled()
মেথডগুলো HTTP রিকোয়েস্টের বিভিন্ন ফলাফল অনুযায়ী কল করা হয়।
অ্যাপাচি HTTP ক্লায়েন্টে Future
এবং Callback
ব্যবহারের মাধ্যমে অ্যাসিঙ্ক্রোনাস HTTP রিকোয়েস্ট প্রেরণ এবং তাদের ফলাফল পরিচালনা করা সম্ভব। Future
ব্যবহার করে আপনি রিকোয়েস্টের পরে সিস্টেম ব্লক হওয়া ছাড়াই রেসপন্স পেতে পারেন, আর Callback
ব্যবহারের মাধ্যমে নির্দিষ্ট কার্যক্রমগুলি সম্পন্ন করতে পারেন যখন রিকোয়েস্ট সফলভাবে সম্পন্ন হয়, ব্যর্থ হয় অথবা বাতিল হয়।
common.read_more